package work.month06.day03;

import java.time.LocalDate;
import java.util.Date;
import java.util.Random;

/**
 * @date 2020/06/03
 * @author 王光浩
 * @need 对日期数组的排序
 */
public class DateSort2 {

public static void main( String[] args ) {
        
        final Random random = new Random();
    
        final LocalDate[] dates = new LocalDate[ 5 ] ;
        
        // 使用循环对 dates 数组进行初始化
        for( int i = 0 ; i < dates.length ; i++){
            // 随机产生 年份、月份、日期，并以此获得 LocalDate 实例
            LocalDate date = LocalDate.of(random.nextInt(5000), random.nextInt(12)+1, random.nextInt(30));
            dates[ i ] = date ;
        }        
        // 使用循环输出排序前的日期
        System.out.println("排序前的日期");
		for (int i = 0; i < dates.length; i++) {
			System.out.println("第" + (i+1) + "日期时间：" + dates[i]);
		}        
        // 使用 LocalDate 类提供的方法，对日期进行比较并排序
        for (int i = 0; i < dates.length -1; i++) {
        	for (int j = 0; j < dates.length - i -1; j++) {
        		if (dates[j].compareTo(dates[j+1]) > 0) {
        			LocalDate tem = dates[j];
					dates[j] = dates[j+1];
					dates[j+1] = tem;
        		}
        	}
        }
        // 使用循环输出排序后的日期
		System.out.println("排序后的日期");
		for (int i = 0; i < dates.length; i++) {
			System.out.println("第" + (i+1) + "日期时间：" + dates[i]);
		}
        
    }

}
